package com.sunwayhorizo.health.hl7.vocabulary;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

import com.sunwayhorizo.health.hl7.common.VersionInfo;
import com.sunwayhorizo.health.hl7.datatypes.CS;
import com.sunwayhorizo.health.hl7.datatypes.common.InternalFactory;

@SuppressWarnings({ "unchecked", "rawtypes" })
public class ActCode
{
    public static final String RCS_ID = "$Header: RoleClass.java 1.0 2006/07/29 06:51:34 rassubra noship $";
    public static final boolean RCS_ID_RECORDED = VersionInfo.recordClassVersion("$Header: RoleClass.java 1.0 2006/07/29 06:51:34 rassubra noship $",
        "com.sunwayhorizo.health.hl7.vocabulary");
    public static CS CLINIC; // 挂号
    public static CS AGAINCLINIC; // 复诊
    public static CS TRANSFERCLINIC; // 转号
    public static CS PATIENTTRANSFER; // 转科
    public static CS HOSPITALIZED; // 入院
    public static CS INDEPARTMENT; // 入科
    public static CS RECEIVING; // 接诊
    public static CS DISCHARGED; // 出院
    /******************************** 电子病历 ******************************/
    public static CS TEMPCLASS; // 模板分类
    public static CS TEMPFILE; // 电子病历模板文件
    public static CS TEMPAUDIT; // 电子病历模板审核
    public static CS CLINIClIB; // 诊疗库
    public static CS MEDICALIMG; // 医学图片
    public static CS EMRMANAGER; // 病历管理

    public static CS EMRCLASS; // 电子病历书写分类

    public static CS DEFECTREVIEW; // 缺陷审查

    /** ----------------------OBS--------------------- **/
    public static CS CONSULTATION;//会诊

    /** ---------------------ORG--------------------- **/
    public static CS HOSPITAL; // 机构
    public static CS DEPARTMENT; // 科室
    public static CS WORKGROUP; // 工作组
    public static CS PSN; // 个人
    public static CS SYSROLE; // 系统角色
    public static CS EMPLOYEE; // 员工标识

    /** ----------------------PLC---------------------- **/
    public static CS BED; // 床位
    public static CS ROOM; // 房间
    public static CS PLC; // 地区

    public static CS CLINICGROUP; // 医疗组

    public static CS RGRP; // 权限

    public static CS CLINICINDEX; // 出诊

    public static CS THREELEVELSPHYSICIAN; // 三级医师

    public static CS MEDICALTEAM; // 医疗组
    public static CS MENU;

    /** ----------------------APPOINTMENT---------------------- **/
    public static CS WEB; // 网上预约

    public static CS TELEPHONE; // 电话预约

    public static CS WINDOW; // 窗口预约
    public static CS GREENCHANNEL;// 绿色通道

    /** ----------------------ORDERS---------------------- **/
    public static CS DRUG; // 药品
    public static CS EXAM; // 检查
    public static CS LAB; // 检验
    public static CS TREAT;// 治疗
    public static CS SURGERY;// 手术
    public static CS ANAEROBIC;// 麻醉
    public static CS NURSING;// 护理
    public static CS OTHER;  //其他（非药疗项目没有分类的）

    private static final CS values[];
    public static final Set ALL_VALUES;


    public ActCode()
    {
    }

    static
    {
        CLINIC = InternalFactory.newCS("CLINIC");
        AGAINCLINIC = InternalFactory.newCS("AGAINCLINIC");
        TRANSFERCLINIC = InternalFactory.newCS("TRANSFERCLINIC");
        PATIENTTRANSFER = InternalFactory.newCS("PATIENTTRANSFER");
        HOSPITALIZED = InternalFactory.newCS("HOSPITALIZED");
        INDEPARTMENT = InternalFactory.newCS("INDEPARTMENT");
        RECEIVING = InternalFactory.newCS("RECEIVING");
        TEMPCLASS = InternalFactory.newCS("TEMPCLASS");
        TEMPFILE = InternalFactory.newCS("TEMPFILE");
        TEMPAUDIT = InternalFactory.newCS("TEMPAUDIT");
        CLINIClIB = InternalFactory.newCS("CLINIClIB");
        MEDICALIMG = InternalFactory.newCS("MEDICALIMG");
        EMRCLASS = InternalFactory.newCS("EMRCLASS");
        HOSPITAL = InternalFactory.newCS("HOSPITAL");
        DEPARTMENT = InternalFactory.newCS("DEPARTMENT");
        WORKGROUP = InternalFactory.newCS("WORKGROUP");
        PSN = InternalFactory.newCS("PSN");

        SYSROLE = InternalFactory.newCS("SYSROLE");
        EMPLOYEE = InternalFactory.newCS("EMPLOYEE");
        DISCHARGED = InternalFactory.newCS("DISCHARGED");
        BED = InternalFactory.newCS("BED");
        ROOM = InternalFactory.newCS("ROOM");
        PLC = InternalFactory.newCS("PLC");
        CLINICGROUP = InternalFactory.newCS("CLINICGROUP");

        RGRP = InternalFactory.newCS("RGRP");

        MEDICALTEAM = InternalFactory.newCS("MEDICALTEAM");
        EMRMANAGER = InternalFactory.newCS("EMRMANAGER");

        CLINICINDEX = InternalFactory.newCS("CLINICINDEX");
        THREELEVELSPHYSICIAN = InternalFactory.newCS("THREELEVELSPHYSICIAN");

        MENU = InternalFactory.newCS("MENU");

        WEB = InternalFactory.newCS("WEB");
        TELEPHONE = InternalFactory.newCS("TELEPHONE");
        WINDOW = InternalFactory.newCS("WINDOW");
        GREENCHANNEL = InternalFactory.newCS("GREENCHANNEL");
        DEFECTREVIEW = InternalFactory.newCS("DEFECTREVIEW");

        DRUG = InternalFactory.newCS("DRUG");
        EXAM = InternalFactory.newCS("EXAM");
        LAB = InternalFactory.newCS("LAB");
        TREAT = InternalFactory.newCS("TREAT");
        SURGERY = InternalFactory.newCS("SURGERY");
        ANAEROBIC = InternalFactory.newCS("ANAEROBIC");
        NURSING = InternalFactory.newCS("NURSING");
        OTHER = InternalFactory.newCS("OTHER");
        
        CONSULTATION = InternalFactory.newCS("CONSULTATION");

        values = (new CS[] { CLINIC, AGAINCLINIC, TRANSFERCLINIC, PATIENTTRANSFER, HOSPITALIZED, INDEPARTMENT, RECEIVING, TEMPCLASS, TEMPFILE,
                TEMPAUDIT, CLINIClIB, MEDICALIMG, EMRCLASS, HOSPITAL, DEPARTMENT, WORKGROUP, EMPLOYEE, PSN, SYSROLE, BED, ROOM, PLC, CLINICGROUP, RGRP,
                CLINICINDEX, THREELEVELSPHYSICIAN, MEDICALTEAM, MENU, DISCHARGED, EMRMANAGER, WEB, TELEPHONE, WINDOW, GREENCHANNEL, DEFECTREVIEW, DRUG,
                EXAM, LAB, TREAT, SURGERY, ANAEROBIC, NURSING, CONSULTATION ,OTHER});
        ALL_VALUES = new HashSet(Arrays.asList(values));
    }
}
